Skip to main content

Overview

The Reactional.Playback namespace deals with everything in regards to the system while it is active and playing.

It is divided into three parts:

  • Theme
  • Playlist
  • MusicSystem

I’d advise to just quickly gloss over this page to get a basic sense of what is directly available. We’ll explore these more in depth in the following chapters.

Setup

| Reactional.Setup.LoadBundle()
| Reactional.Setup.IsValid { get, set }
| Reactional.Setup.Samplerate { get, set }
| Reactional.Setup.Blocksize { get, set }
| Reactional.Setup.AllowPlay { get, set }
| Reactional.Setup.LoadBundles()
| Reactional.Setup.LoadBundle(string bundlename)
| Reactional.Setup.LoadSection(string section)
| Reactional.Setup.LoadPlaylist(string playlist)
| Reactional.Setup.LoadTrack(string track)
| Reactional.Setup.LoadTheme(string theme)

Playback.Theme

The theme, as you probably know by now, is the generative/interactive side of the Reactional Music system. Through the Playback.Theme static class you can easily access the functionalities of the loaded theme.

| Reactional.Playback.Theme.Play()
| Reactional.Playback.Theme.Stop()
| Reactional.Playback.Theme.GetThemeID()
| Reactional.Playback.Theme.GetTempo()
| Reactional.Playback.Theme.GetControls()
| Reactional.Playback.Theme.GetTriggers()
| Reactional.Playback.Theme.GetCurrentBeat()
| Reactional.Playback.Theme.GetNumParts()
| Reactional.Playback.Theme.GetCurrentPart()
| Reactional.Playback.Theme.GetPartName(int part)
| Reactional.Playback.Theme.GetPartOffset(int part)
| Reactional.Playback.Theme.GetPartDuration(int part)
| Reactional.Playback.Theme.GetNumBars()
| Reactional.Playback.Theme.GetCurrentBar()
| Reactional.Playback.Theme.GetBarOffset(int bar)
| Reactional.Playback.Theme.GetBarDuration(int bar)
| Reactional.Playback.Theme.Volume { get, set }
| Reactional.Playback.Theme.SetControl(string name, float value)
| Reactional.Playback.Theme.InstrumentOverride(int inst, float pulse, float pitch, float velocity, bool active, bool legato)

Playback.Playlist

The Playback.Playlist static class is focused on the audio track side of things, and is used to control playback of audio as well as playlist functionality. These functions are designed to work much like you would imagine a music player would.

| Reactional.Playback.Playlist.Play()
| Reactional.Playback.Playlist.PlayTrack(string, int, TrackInfo)
| Reactional.Playback.Playlist.PlayTrackByID(int trackID)
| Reactional.Playback.Playlist.Stop(float fadeoutTime)
| Reactional.Playback.Playlist.Next(bool autoplay = true)
| Reactional.Playback.Playlist.Prev(bool autoplay = true)
| Reactional.Playback.Playlist.Random(bool autoplay = true)
| Reactional.Playback.Playlist.IsLoaded()
| Reactional.Playback.Playlist.GetTrackID()
| Reactional.Playback.Playlist.GetCurrentTrackInfo()
| Reactional.Playback.Playlist.GetCurrentTrackMetadata()
| Reactional.Playback.Playlist.GetSelectedTrackIndex()
| Reactional.Playback.Playlist.Volume { get, set }
| Reactional.Playback.Playlist.IsPlaying { get, set }

Playback.MusicSystem

For nitty-gritty musical information and overarching controls, you can use the Playback.MusicSystem class.

| Reactional.Playback.MusicSystem.GetEngine()
| Reactional.Playback.MusicSystem.GetNextBeatAbsolute(float division)
| Reactional.Playback.MusicSystem.GetNextBeat(float division)
| Reactional.Playback.MusicSystem.GetCurrentBeat()
| Reactional.Playback.MusicSystem.GetCurrentMicroBeat()
| Reactional.Playback.MusicSystem.GetTempoBpm()
| Reactional.Playback.MusicSystem.BeatsToSeconds()
| Reactional.Playback.MusicSystem.WaitForNextBeat(float division)